滑动内容脚本
Sliding content script
本文关键字:脚本 更新时间:2023-09-26
我编写了这个脚本,用于在单击span时滑动内容。
我需要给顶部菜单一个不同的背景颜色,然后身体,所以需要包含它与div "bblock1"
"容器""bodymainMAX"
。如果这样做,脚本不再可以引用下一个要滑动的div作为它的3个div的距离。
工作良好,如果我离开"tabbed_content"
和"slide_content"
在一起。
是否有任何函数可以用来解决这个问题?谢谢你。
:
<div class="bblock1" style="height:100%;">
<div class="container">
<div class="bodymainMax">
<div class='tabbed_content'>
<div class='tabs'>
<div class='moving_bg'> </div>
<span class='tab_item'>features</span>
<span class='tab_item'>Addons</span>
<span class='tab_item'>Pricing</span>
<span class='tab_item'>FAQ's</span>
</div>
<div class='slide_content'>
<ul class='tabslider'>
<li>aaaaajjjjmmmmmmmmmmmma</li>
<li>Bbbbbbbbbbbbb</li>
<li>Ccccccccccccc</li>
<li>Ddddddddddddd</li>
</ul>
</div>
</div>
</div>
</div>
</div>
不工作:
<div class="bblock1" style="height:100%;">
<div class="container">
<div class="bodymainMax">
<div class='tabbed_content'>
<div class='tabs'>
<div class='moving_bg'> </div>
<span class='tab_item'>features</span>
<span class='tab_item'>Addons</span>
<span class='tab_item'>Pricing</span>
<span class='tab_item'>FAQ's</span>
</div>
</div>
</div>
</div>
<div class="bblock3" style="height:100%;">
<div class="container">
<div class="bodymainMax">
<div class='slide_content'>
<ul class='tabslider'>
<li>aaaaajjjjmmmmmmmmmmmma</li>
<li>Bbbbbbbbbbbbb</li>
<li>Ccccccccccccc</li>
<li>Ddddddddddddd</li>
</ul>
</div>
</div>
</div>
</div>
</div>
脚本:
$(".tab_item").mouseover(function() {
var $this = $(this);
$this.parent().find(".moving_bg").stop().animate({
left: $this.position()['left']
}, { duration: 300 });
});
var TabbedContent = {
current: {i:null, obj:null},
init: function() {
$(".tab_item").click(function() {
var $this = $(this);
TabbedContent.slideContent($this);
});
TabbedContent.current.i = 0;
TabbedContent.current.obj = $(".tabslider li").eq(0);
},
slideContent: function($obj) {
var $container = $obj.cloest(".tabbed_content");
var $tabslider = $container.find(".tabslider");
var i = $obj.index() - 1;
var $lis = $tabslider.find("li");
$new = $lis.eq(i);
if(i === TabbedContent.current.i) {
return;
}
$lis.hide().filter($new.add(TabbedContent.current.obj)).show();
var margin_1 = (i > TabbedContent.current.i) ? 0 : -$new.width();
var margin_2 = (i < TabbedContent.current.i) ? 0 : -$new.width();
$tabslider.stop().css({
marginLeft: margin_1 + "px"
}).animate({
marginLeft: margin_2 + "px"
}, 1200);
TabbedContent.current.i = i;
TabbedContent.current.obj = $new;
}
}
TabbedContent.init();
JSFIDDLE:
https://jsfiddle.net/r73b14y5/我猜这是因为您从tabbed_content容器中展开了制表符内容。下面是更新后的slideContent函数:
slideContent: function($obj) {
var $container = $obj.closest(".tabbed_content"),
$contentContainer = $('.bodymainMax'),
$tabslider = $contentContainer.find(".tabslider");
var i = $obj.index() - 1;
var $lis = $tabslider.find("li");
$new = $lis.eq(i);
if(i === TabbedContent.current.i) {
return;
}
$lis.hide().filter($new.add(TabbedContent.current.obj)).show();
var margin_1 = (i > TabbedContent.current.i) ? 0 : -$new.width();
var margin_2 = (i < TabbedContent.current.i) ? 0 : -$new.width();
$tabslider.stop().css({
marginLeft: margin_1 + "px"
}).animate({
marginLeft: margin_2 + "px"
}, 1200);
TabbedContent.current.i = i;
TabbedContent.current.obj = $new;
}
和工作小提琴
相关文章:
- 当包含另一个asp文件时,是否也包含所有引用的样式和脚本页面
- 借助asp.net验证或java脚本对多个文本进行验证
- chrome扩展:尽管运行了at:documentidle,js脚本还是过早启动
- Java脚本时间添加
- 不显示带有本地json文件数据的谷歌地图脚本
- JQuery添加元素需要在我的js之前再次添加JQuery脚本
- 从远程脚本获取用户IP
- 如何根据时间运行不同的脚本
- 如何将字符串值从php页面发送到java脚本页面
- 使用谷歌应用程序脚本将服务器端数据表返回到客户端
- 可以设置“;文件名"发生错误时显示的内联脚本标记的
- 当脚本由system.js加载时,如何要求('electron')
- HTML标记在脚本标记中工作
- 是否可以控制获取哪些Google地图脚本(JavaScript API)
- 使用谷歌应用程序脚本从工作表中获取值并将其显示在文本框中
- 显示时间的脚本
- ng应用程序使脚本无限运行
- 如何在运行时在angular 2中加载外部js脚本
- Google Adsense多次加载脚本
- FF视图源|脚本高亮显示为红色