我想以某种方式“分页”我的滚动功能,以便我可以从“标签/按钮”列表中进行选择,它会自动滚动到“div / tab”...这就是我所拥有的,这个正在经历一段时间的声明,在我的数据库中生成歌曲,每个“标签”都是自己的歌曲......
///PHP///
$x=count($array);
$song .= '
<div class="tab">
<div id="full">
<div id="container" style="color:#00234A;"><h1>' . $title . '</h1></div>
<hr style="margin-bottom:10px;" />
<div class="transpose" style="background-color:#F3F3F3; border: 1px solid #D1D1D1; font-size:13px; padding:3px 10px; color:#225c7e; margin-bottom:10px;">
//////////HERE IS WHERE I WOULD LIKE THE BUTTONS//////////////////////
transpose:
<a class="transposeUp" id="transposeUp'.$vID.'" title="transpose up"
onclick="return false"
onmousedown="transposeUp(\''.$vID.'\');">
<span>∧</span></a>
<a class="transposeDown" id="transposeDown'.$vID.'" title="transpose down"
onclick="return false"
onmousedown="transposeDown(\''.$vID.'\');">
<span>∨</span></a>
</div><br /><br />';
</div>
</div>
然后我的css ......
.window{overflow:hidden; width:900px; font-size:14px;}
.space{width:<?php echo $i; ?>px; overflow:hidden;}
.tabs{float:left;}
.tab{float:left; width:900px; display:inline;}
我的JS ......
$('.scrollable a.left').click(function(e){
var sz = $('.window');
sz.animate({scrollLeft: "-=900"}, 300, 'linear');
}, function(e){
$(sz).stop();
});
$('.scrollable a.right').click(function(e){
var sz = $('.window');
sz.animate({scrollLeft : "+=900"}, 300, 'linear');
}, function(e){
$(sz).stop();
});
和HTML ......
<div class="mainBodyTable">
<div style="background-color:white; padding:10px 15px;">
<div class="scrollable">
<div class="window">
<div class="space">
<div class="tabs">
<?php echo $song; ?>
</div>
</div>
</div>
<a href="#" class="left">←</a>
<a href="#" class="right">→</a>
</div>
</div>
</div>
我们的想法是会有$ x定义的框,每个框都会有相应的数字。单击它时,它将滚动到其各自的div。 有人可以至少帮助指导吗?提前谢谢......
答案 0 :(得分:1)
要使用此解决方案,您需要编写您的php,使您的标签具有yourClassSelector
的类属性,并增加与其相关歌曲匹配的id属性。
类似的东西:
<?php
$i = 1;
$count_of_tabs = // count() or my_sql_num_rows();
while $i < $count_of_tabs:
name_tab("your_tabs", $your_tab_array, $i);
$i++;
endwhile;
function name_tab($tab_id_string, $tab_array, $b) {
foreach($tab_array as $cur_tab) {
$output = // insert html;
$output .= $tab_id_string . $b;
$output .= // insert more html;
echo $output;
}
}
?>
<script type="text/javascript">
// I adapted this from another post on stackoverflow. I didn't write getOffset.
function getOffset( el ) {
var _x = 0;
var _y = 0;
while( el && !isNaN( el.offsetLeft ) && !isNaN( el.offsetTop ) ) {
_x += el.offsetLeft - el.scrollLeft;
_y += el.offsetTop - el.scrollTop;
el = el.offsetParent;
}
return { top: _y, left: _x };
}
jQuery('.yourClickSelector').click(function(e) {
e.preventDefault();
var tabId = jQuery(this).attr("id");
var songId = jQuery(tabId + '-song');
var x = getOffset( document.getElementById(songId) ).left;
var y = getOffset( document.getElementById(songId) ).top;
window.scrollTo(x,y)
});
</script>
在我写完之后,我没有校对,所以请不要只是复制并粘贴它并在阅读之前将其插入。