拾ったソースを改造しようとしているのですが
知識がない為うまくいきません。
divの中のsample1~10を横に並べて、改行なしの横スクロールにしたいです。
今は縦スクロールです。
どこを直せばいいのか教えてくださいm(_ _)m
――――――――――――――――――
<SCRIPT language="JavaScript">
<!--
var SmoothScroll = {};
SmoothScroll = {
targetScrollTop : 0,
dist : 0,
timer : 0,
count : 0,
parentid : 0,
lastDist : 0,
//speedStore : [],
options : {},
defaultOptions : {
time : 1*1000,
unit : 50
},
scrollTo : function( element, parent, options ){
this.options.time = this.defaultOptions.time;
this.options.unit = this.defaultOptions.unit;
if( options ){
this.options.time = ( options.time ) ? options.time : this.options.time;
this.options.unit = ( options.unit ) ? options.unit : this.options.unit;
}
clearInterval( this.timer );
this.parentid = parent;
this.scrollTopMax = this.$(parent).scrollHeight - this.$(parent).offsetHeight + parseInt(this.$(parent).style.borderTopWidth) + parseInt(this.$(parent).style.borderBottomWidth);
if( navigator.userAgent.match( "MSIE" ) ){
this.targetScrollTop = ( element ) ? this.$(element).offsetTop : 0;
}else{
var targetOffsetTop = ( element ) ? this.$(element).offsetTop : this.$(parent).offsetTop;
this.targetScrollTop = targetOffsetTop - this.$(parent).offsetTop;
}
this.targetScrollTop = ( this.targetScrollTop > this.scrollTopMax ) ? this.scrollTopMax : this.targetScrollTop;
this.dist = this.targetScrollTop - this.$(parent).scrollTop;
this.lastDist = 0;
this.timer = setInterval('SmoothScroll.update()', this.options.unit );
this.count = 0;
//this.speedStore = [];
this.update();
},
update : function(){
var dist = this.targetScrollTop - this.$(this.parentid).scrollTop;
var speed = 2 * dist * this.options.unit / ( this.options.time - this.options.unit * this.count );
//this.speedStore.push( speed );
speed = ( speed > 0 ) ? Math.ceil( speed ) : Math.floor( speed );
if( Math.abs(dist) <= Math.abs(speed) ){
// got there
clearInterval( this.timer );
this.$(this.parentid).scrollTop = this.targetScrollTop;
return;
}else if( this.lastDist == dist ){
// stuck
clearInterval( this.timer );
this.$(this.parentid).scrollTop = this.targetScrollTop;
return;
}
var scrollTop = this.$(this.parentid).scrollTop + speed;
this.$(this.parentid).scrollTop = scrollTop;
this.lastDist = dist;
this.count++;
if( this.count == this.options.time / this.options.unit ){
// timeout
clearInterval( this.timer );
this.$(this.parentid).scrollTop = this.targetScrollTop;
}
},
$ : function(id) {
return document.getElementById(id);
}
}
-->
</script>
<div id="scrolltop" style="width: 750px; height: 200px; overflow-x: scroll; overflow-y: scroll; border: 1px black solid;">
<a href="sample1">1</a>
<a href="sample2">2</a>
<a href="sample3">3</a>
<a href="sample4">4</a>
<span id="middle" style="color: red">
<a href="sample5">5</a>
</span>
<a href="sample6">6</a>
<a href="sample7">7</a>
<a href="sample8">8</a>
<a href="sample9">9</a>
<span id="bottom" style="color: blue">
<a href="sample10">10</a>
</span><br />
</div>
<input type="button" value="go to top" onclick="SmoothScroll.scrollTo(0,'scrolltop');"/>
<input type="button" value="go to middle" onclick="SmoothScroll.scrollTo('middle','scrolltop');"/>
<input type="button" value="go to bottom" onclick="SmoothScroll.scrollTo('bottom','scrolltop');"/>
A 回答 (3件)
- 最新から表示
- 回答順に表示
No.2
- 回答日時:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<title></title>
<style type="text/css">
a { padding:40px; }
</style>
<div id="scrollLeft" style="width: 750px; height: 200px; overflow-x: scroll; overflow-y: scroll; border: 1px black solid;">
<div style="width: 1000px; height: 200px;">
<a href="sample1">1</a>
<a href="sample2">2</a>
<a href="sample3">3</a>
<a href="sample4">4</a>
<span id="middle" style="color: red">
<a href="sample5">5</a>
</span>
<a href="sample6">6</a>
<a href="sample7">7</a>
<a href="sample8">8</a>
<a href="sample9">9</a>
<span id="bottom" style="color: blue">
<a href="sample10">10</a>
</span>
</div>
</div>
<input type="button" value="go to top" onclick="SmoothScroll.scrollTo(0,'scrollLeft');"/>
<input type="button" value="go to middle" onclick="SmoothScroll.scrollTo('middle','scrollLeft');"/>
<input type="button" value="go to bottom" onclick="SmoothScroll.scrollTo('bottom','scrollLeft');"/>
<script type="text/javascript">
var SmoothScroll = {
targetScrollLeft : 0,
dist : 0,
timer : 0,
count : 0,
parentid : 0,
lastDist : 0,
//speedStore : [],
options : {},
defaultOptions : {
time : 1*1000,
unit : 50
},
scrollTo : function( element, parent, options ){
this.options.time = this.defaultOptions.time;
this.options.unit = this.defaultOptions.unit;
if( options ){
this.options.time = ( options.time ) ? options.time : this.options.time;
this.options.unit = ( options.unit ) ? options.unit : this.options.unit;
}
clearInterval( this.timer );
this.parentid = parent;
this.scrollLeftMax = this.$(parent).scrollWidth - this.$(parent).offsetWidth + parseInt(this.$(parent).style.borderLeftWidth) + parseInt(this.$(parent).style.borderBottomWidth);
if( navigator.userAgent.match( "MSIE" ) ){
this.targetScrollLeft = ( element ) ? this.$(element).offsetLeft : 0;
}else{
var targetOffsetLeft = ( element ) ? this.$(element).offsetLeft : this.$(parent).offsetLeft;
this.targetScrollLeft = targetOffsetLeft - this.$(parent).offsetLeft;
}
this.targetScrollLeft = ( this.targetScrollLeft > this.scrollLeftMax ) ? this.scrollLeftMax : this.targetScrollLeft;
this.dist = this.targetScrollLeft - this.$(parent).scrollLeft;
this.lastDist = 0;
this.timer = setInterval('SmoothScroll.update()', this.options.unit );
this.count = 0;
//this.speedStore = [];
this.update();
},
update : function(){
var dist = this.targetScrollLeft - this.$(this.parentid).scrollLeft;
var speed = 2 * dist * this.options.unit / ( this.options.time - this.options.unit * this.count );
//this.speedStore.push( speed );
speed = ( speed > 0 ) ? Math.ceil( speed ) : Math.floor( speed );
if( Math.abs(dist) <= Math.abs(speed) ){
// got there
clearInterval( this.timer );
this.$(this.parentid).scrollLeft = this.targetScrollLeft;
return;
}else if( this.lastDist == dist ){
// stuck
clearInterval( this.timer );
this.$(this.parentid).scrollLeft = this.targetScrollLeft;
return;
}
var scrollLeft = this.$(this.parentid).scrollLeft + speed;
this.$(this.parentid).scrollLeft = scrollLeft;
this.lastDist = dist;
this.count++;
if( this.count == this.options.time / this.options.unit ){
// timeout
clearInterval( this.timer );
this.$(this.parentid).scrollLeft = this.targetScrollLeft;
}
},
$ : function(id) {
return document.getElementById(id);
}
}
</script>
Top というのは、Leftに
Height というのは Width に
id="scrollLeft"のなかにdivようそをつくって
みたいな・・・?
でもせんたーはおかしい
あとはたにんまかせ?^^;
ばぶぅ~
この回答への補足
ありがとうございます!
実はこれ会社のページを作ろうとしているのですが、
急遽別の作業を言い付けられて目が回っています…(@Д@)
時間はかかりそうですがいただいた意見を元に頑張ってみます。
No.1
- 回答日時:
どうせ拾ったソースなら捨ててしまって、別のを使ったらいかがでしょう。
例えば、なめらかスクロール「tinyscrol」
http://pub.ne.jp/tsuchan/?entry_id=317594
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・一回も披露したことのない豆知識
- ・これ何て呼びますか
- ・チョコミントアイス
- ・初めて自分の家と他人の家が違う、と意識した時
- ・「これはヤバかったな」という遅刻エピソード
- ・これ何て呼びますか Part2
- ・許せない心理テスト
- ・この人頭いいなと思ったエピソード
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・あなたの習慣について教えてください!!
- ・ハマっている「お菓子」を教えて!
- ・高校三年生の合唱祭で何を歌いましたか?
- ・【大喜利】【投稿~11/1】 存在しそうで存在しないモノマネ芸人の名前を教えてください
- ・好きなおでんの具材ドラフト会議しましょう
- ・餃子を食べるとき、何をつけますか?
- ・あなたの「必」の書き順を教えてください
- ・ギリギリ行けるお一人様のライン
- ・10代と話して驚いたこと
- ・家の中でのこだわりスペースはどこですか?
- ・つい集めてしまうものはなんですか?
- ・自分のセンスや笑いの好みに影響を受けた作品を教えて
- ・【お題】引っかけ問題(締め切り10月27日(日)23時)
- ・大人になっても苦手な食べ物、ありますか?
- ・14歳の自分に衝撃の事実を告げてください
- ・架空の映画のネタバレレビュー
- ・「お昼の放送」の思い出
- ・昨日見た夢を教えて下さい
- ・ちょっと先の未来クイズ第4問
- ・【大喜利】【投稿~10/21(月)】買ったばかりの自転車を分解してひと言
- ・メモのコツを教えてください!
- ・CDの保有枚数を教えてください
- ・ホテルを選ぶとき、これだけは譲れない条件TOP3は?
- ・家・車以外で、人生で一番奮発した買い物
- ・人生最悪の忘れ物
- ・【コナン30周年】嘘でしょ!?と思った○○周年を教えて【ハルヒ20周年】
- ・10秒目をつむったら…
- ・人生のプチ美学を教えてください!!
- ・あなたの習慣について教えてください!!
- ・都道府県穴埋めゲーム
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
クリックで色変更後に既に変更...
-
背景色を透明化
-
指定したパスが現URLに含まれて...
-
javascriptテキストBOX色を元に...
-
座標を取得して、後でその位置...
-
CSSのID名に配列を使えませんか?
-
jquery.cookieを利用しての表示
-
javascriptによるスクロールを...
-
iframe内のリンクが飛ばないの...
-
MAX関数を使ってからLEFT JOIN...
-
スタイルシート(CSS)で、高さ...
-
キャラクターがぴょこんと飛び...
-
c++std::string型をTCHARに変換...
-
外部javascriptの重複を防ぐには
-
JSの変数をHTMLに渡す方法
-
リンク先を動的に変更する
-
透過pngの透明部分以外をクリッ...
-
jquery ドロップダウンメニュー...
-
【助けてください】POST受信の...
-
Ajax LightBoxを使用したサムネ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
MAX関数を使ってからLEFT JOIN...
-
iframe内のリンクが飛ばないの...
-
javascriptテキストBOX色を元に...
-
createElementで作成した要素を...
-
背景色を透明化
-
IFRAMEの表示/非表示を切り替え...
-
console.log結果をhtmlで表示し...
-
removeEventListenerについて
-
表示・非表示のスクリプトで、...
-
読み込んだQRコードをフォーム...
-
jQueryでクリックされた要素のi...
-
removeAttribute()メソッドで削...
-
テキストエリア内の一部の文字...
-
jQueryのアコーディオンメニュ...
-
javascriptでpostした値が取得...
-
テキストボックスに入力された...
-
jQueryでシンプルドラッグドロ...
-
jQueryで同じid属性が複数あっ...
-
ページ遷移後のcssプロパティ保持
-
自働生成される<div>タグに連番...
おすすめ情報