のくす牧場
コンテンツ
牧場内検索
カウンタ
総計:127,432,556人
昨日:no data人
今日:
最近の注目
人気の最安値情報

元スレ+ JavaScript の質問用スレッド vol.75 +

JavaScript覧 / PC版 /
スレッド評価: スレッド評価について
みんなの評価 :
タグ : 追加: タグについて ※前スレ・次スレは、スレ番号だけ登録。駄スレにはタグつけず、スレ評価を。荒らしタグにはタグで対抗せず、タグ減点を。
←前へ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 次へ→ / 要望・削除依頼は掲示板へ / 管理情報はtwitter

701 = :

>>699
あいかわらず茶々しか言えねぇ糞コロガシ

702 = :

全部込みでCSSで可能
IE7以下はしらん

703 = :

>>701
699は至極全うな回答だと思うが?

704 = :

>>702
「...」に置換するとこもCSSでできるの?

705 = :

...はcssのcontentで生成すればできるけど
もともとの文字列が100pxに収まるかはみ出るかの判断はcssじゃできないから
その振り分けができずにすべてに...を付加してしまうから
cssだけじゃ無理

706 = :

>>696
「文字列末尾から」を「文字列先頭から」でやってみた。

  getStr: function (txt, w) { //w幅に収まるtxtを返すメソッド
   var str = "", t = getWidth(txt);
   if (t == 0 || t < w) { str = txt; }
   else {
    var arry = txt.split("");
    var max = arry.length;
    for (var i = 0; i < max; i++) {
     str += arry[i];
     if (getWidth(str + "...") >= w) {
      str = str.substring(0, i - 1) + "...";
      break;
     }
    }
   }
   return str;
  }

渡す文字列長に気を遣うこともないし、こっちの方が真っ当かも。
cssで妥協できるならそれに越した事はない:-)

707 = :

久しぶりに使おうとしてJSLintのサイト行こうと思ったんだけど見当たらないね
何かmultiWidgetってソフトはあるみたいだけど・・・

708 = :

ごめん、見つかった・・・苦笑

709 = :

>>706
二分探索が使えるんじゃないか?

710 = :

>>705
あたまかてーなー

711 = :

要求に忠実なだけだと思うが

省略されてないのに省略されたように見えるのなら
そのほうが問題でしょ

712 = :

>>711
いや、>>710 はCSSだけで「...」を選択的に付加する方法が
分かっているのかも知れない。それは洩れも聞きたい。さあどうぞ。

713 = :

次に>>710はtext-overflowと言う

714 = :

わろーた

715 = :

>>709
なるほどね~。てことでさっそくやってみますた。

  getStr: function (txt, w) { //w幅に収まるtxtを返すメソッド
   var str = "";
   if (getWidth(txt) < w) { str = txt; }
   else {
    var arry = txt.split("");
    var max = arry.length;
    var n = max;
    while (getWidth(txt.substring(0, n) + "...") > w) {
     n = Math.floor(n / 2);
     str = txt.substring(0, n);
    }
    for (var i = n < max ? n : 0; i < max; i++) {
     str += arry[i];
     if (getWidth(str + "...") >= w) {
      str = str.substring(0, i - 1) + "...";
      break;
     }
    }
   }
   return str;
  }

渡された文字列を二分して枠内に収まるか調べ、条件を満たせば
forループの基点をその位置に持ってくるようにしてみた。

条件(引数)次第だけど、ハマれば体感できるほど速くなったよ~ん:-)

716 = :

はみ出しそうなときだけに…を見せるのはCSSだけでできる
ホントに頭かてーなお前らw

717 = :

text-overflow:ellipsis;でできると思ったんだけど、ダメなんですか?

718 = :

>>717
IEだけでいいならおk

720 :

>>716
見せるだけでデータは全て保持してるから見せるだけではバカチョンレベル
頭わりーな

721 = :

見せるだけでもいいじゃんw
ユーザーはソースからページを読むんじゃないんだろうw

722 = :

仕様書にも無い上にIEでしか機能しないし
素直にスクリプトでやれよ

723 :

>>716
ぜひ!

724 = :

解ったぞ。こういうことか
でもこんな馬鹿なことはやめてもらいたいけど

div.text-overflow{
width:100px;
position:relative;
overflow:hidden;
}

div.text-overflow div{
width:100px;
position:absolute;
top:-1em;
left:85px;
background:#ffffff;
}

<div class="text-overflow">
testtesttesttesttest
<div>testtesttesttesttest­…</div>
</div>

725 = :

この発想はなかった。

しかし、ここJSすれだろw

726 = :

>>715
>>724
発表会じゃねーんだよ

727 = :

>>726
まぁそう言わずにバグでも探して楽しんでよ。

>>715には致命的なバグあり。レアなケースだけどwhileを抜けられない:-(
それと、- 1してる箇所はいらんね。

728 = :

質問です。

document.getElementById("hoge").style.height = 400;

が、IE8では動くんですが、firefoxでは動いてくれません。
firefoxではどのように書けばいいんでしょうか?

ちなみにoperaの場合は
window["hoge"].style.height = 400;
で動きましたがfirefoxではやはり×でした

729 = :

単位

731 = :

>>728
CSSの勉強をしろ。CSSでは長さには単位が必須。IEで
数字だけで動くほうがむしろCSSに合致していない。
400mmなのか400pxなのか400exなのか分からんじゃんねえ。

732 = :

じゃん

733 = :

>>728
JSとCSSを別けて考えないと駄目だよ
CSSの値は文字列で指定するのが普通。(単位も添えて)

734 = :

こんにちは。
select1つに現在、数値の代入をしてテキストエリアへ表示させており、
その代入数値の前にselectのoptionvalueの文字列を連結表示させたいのですが、
方法が分かりません・・。
optionvalueをそのまま表示する方法があるのか、もしくは同じselectにもう1つ代入させて
(再変換のような感じ)それを表示させれるのか・・。
<head>
a = new Array()
a[0] = 10;
a[1] = 11;
function myCalc(){time = a[myForm.select01.selectedIndex];}
......
document.TxArea.value += +
</head>
<body>
<FORM name="myForm">
<SELECT NAME="select2" SIZE=1>
<OPTION VALUE=0>文字列A
<OPTION VALUE=0>文字列B
<OP.............
</SELECT>
<input type="button" value="計算する" onclick="myCalc()"></FORM>
.............
<FORM name="TArea">
<Textarea name="test1">表示前</textarea></FORM>

このTAreaに現在代入されるa=10の(10)と表示される前に文字列をつけて「文字列A10」としたいのですが
よくわかりません助けてください。

735 = :

>>734
JavaScript以前にHTMLが古すぎると思います。

736 = :

>>735
大分前にHTMLは覚えたままでその後WEB関連とは遠のいていたもので・・。
HTMLはなんとなく分かるので後で自分で新しいものを参考にして書き直して見ますが
selectの方よろしくお願いします。

737 = :

>>729
>>731
>>733
だめですう!・・・できませんorz
以下を全部試しましたがどれもfirefoxで動きませんでした

document.getElementById("hoge").style.height = 400;
document.getElementById("hoge").style.height = 400px;
document.getElementById("hoge").style.height = "400px";

getElementById("hoge").style.height = 400;
getElementById("hoge").style.height = 400px;
getElementById("hoge").style.height = "400px";

window["hoge"].style.height = 400;
window["hoge"].style.height = 400px;
window["hoge"].style.height = "400px";

738 = :

>>737
CSSとScript分離すれば?

739 = :

>>738
ユーザのクリックに合わせてレイアウト変更する必要があるのです

一応、他のブラウザは下記で行けました
IE:document.getElementById("hoge").style.height = 400;
opera:window["hoge"].style.height = 400;
safari:window["hoge"].style.height = "400px";
chrome:window["hoge"].style.height = "400px";

firefoxだけ動かせませんorz

741 = :

>>715
二分探索の課題だったら赤点
結局 最悪計算がO(n)じゃん

742 = :

>>739
普通にidやclassを付加すればいいと思うが
400の部分は、ユーザが入力した数字に合わせて変化させるってこと?

743 = :

>>739
>>740ができてるんだから他の部分に問題があるのかもよ

744 = :

>>734
> <OPTION VALUE=0>文字列A
> <OPTION VALUE=0>文字列B

この「文字列A」「文字列B」とかのことなら
myForm.select2.options[myForm.select2.selectedIndex].text
で取得出来るけど。そういうことじゃなくて?

select01 なのか select2 なのか
(本当に<SELECT>が2つあるのか、単なる誤記なのか)
よう分からんからその辺はそちらで適当に直しといてね。
(他にも document.TxArea.value とかアヤシげなのがあるけど)

745 = :

>>739
もしかして、formの中でidとnameをごちゃ混ぜにしてない?

実際のhtml部分を提示するのが解決への近道だと思う。

746 :

Ajaxって結局はCGIが扱えない人の窮余の一策ってことですか?

747 = :

そう思う人にはそうなんだと思う

748 = :

えーと、サーバの負担がですねぇ…

749 = :

Ajax連呼する奴は馬鹿だとは思う

750 = :

Ajax覚えたてだとAjaxが楽しくてしょうがないんだよw
事実俺も現在進行中だしw


←前へ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 次へ→ / 要望・削除依頼は掲示板へ / 管理情報はtwitterで / JavaScript一覧へ
スレッド評価: スレッド評価について
みんなの評価 :
タグ : 追加: タグについて ※前スレ・次スレは、スレ番号だけ登録。駄スレにはタグつけず、スレ評価を。荒らしタグにはタグで対抗せず、タグ減点を。

類似してるかもしれないスレッド


トップメニューへ / →のくす牧場書庫について