のくす牧場
コンテンツ
牧場内検索
カウンタ
総計:127,062,951人
昨日: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一覧へ
    スレッド評価: スレッド評価について
    みんなの評価 :
    タグ : 追加: タグについて ※前スレ・次スレは、スレ番号だけ登録。駄スレにはタグつけず、スレ評価を。荒らしタグにはタグで対抗せず、タグ減点を。

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


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