这是我的第一个jquery脚本:
<!DOCTYPE html>
<html>
<head>
<title>Sliding test</title>
<style>
html {
height: 100%;
padding: 0;
margin: 0;
}
body{
text-align: center;
background: url('bg.png');
height: 100%;
margin: 0;
padding: 0;
box-shadow: 0 0 900px 35px rgba(0, 0, 0, 0.5) inset;
}
#global_wrap {
width: 1000px;
margin: 30px auto 0;
}
.container {
/*background: pink;*/
height: 240px;
width: 290px;
overflow: hidden;
border-radius: 5px 5px 5px 5px;
border: 3px solid #EAEAEA;
display: inline-block;
}
.slide_wrapper {
height: 500px;
width:290px;
margin-left: 0px;
padding-left: 0px;
text-align: left;
background: white;
margin-top: 0;
}
li {
color: grey;
list-style: none outside none;
}
a {
color: inherit;
text-decoration: none;
}
img {
display: block;
}
h3 {
background: none repeat scroll 0 0 #252525;
color: white;
font-family: sans-serif;
margin: 0;
padding-bottom: 12px;
padding-top: 12px;
text-align: center;
width: 290px;
}
</style>
<script src="http://code.jquery.com/jquery-latest.js"></script>
</head>
<body>
<div id="global_wrap">
<div class="container">
<div class="slide_wrapper">
<a href="javascript:;">
<img src="visuel1.jpg" width="290" height="193">
<h3>Category 1</h3>
</a>
<ul>
<li><a href="#">link</a></li>
<li><a href="#">link</a></li>
<li><a href="#">link</a></li>
<li><a href="#">link</a></li>
<li><a href="#">link</a></li>
</ul>
</div>
</div>
<div class="container">
<div class="slide_wrapper">
<a href="javascript:;" >
<img src="visuel2.png" width="290" height="193">
<h3>Category 2</h3>
</a>
<ul>
<li><a href="#">link</a></li>
<li><a href="#">link</a></li>
<li><a href="#">link</a></li>
<li><a href="#">link</a></li>
<li><a href="#">link</a></li>
</ul>
</div>
</div>
<div class="container">
<div class="slide_wrapper">
<a href="javascript:;">
<img src="visuel3.jpg" width="290" height="193">
<h3>Category 3</h3>
</a>
<ul>
<li><a href="#">link</a></li>
<li><a href="#">link</a></li>
<li><a href="#">link</a></li>
<li><a href="#">link</a></li>
<li><a href="#">link</a></li>
</ul>
</div>
</div>
</div>
<script>
//wrapper_click=false;
$(".slide_wrapper a").click(function(){
if($(this).hasClass('open'))
{
// wrapper_click = false;
$(this).parent().animate({'margin-top': '0px'}, 'slow');
$(this).removeClass('open');
}
else
{
//wrapper_click = true;
$(this).parent().animate({'margin-top': '-193px'}, 'slow');
$(this).addClass('open');
}
});
</script>
</body>
</html>
我不知道为什么,但它在jsfiddle上工作正常: http://jsfiddle.net/svmK5/
它适用于所有浏览器,除了chrome,我不明白为什么......我认为我的代码中出现了一些错误,这使得它有点滞后
有人对脚本中的错误有所了解吗?
答案 0 :(得分:2)
我发现是什么导致脚本滞后,这是由于这个CSS属性:
html {
height: 100%;
}
我不知道为什么这会使我的脚本变得迟钝,但是当我删除它时,我的脚本完美地运行
谢谢大家的帮助,特别是joel harkes,非常有用的帮助!
答案 1 :(得分:1)
这里的Chrome工作正常,您可以选择使用切换类来减少编码:
// toggleClass( class, [duration] )
$(".slide_wrapper a").click(function () {
$(this).parent().toggleClass('open','slow');
});
的CSS:
.open {
'margin-top': '-193px'
}
同样,slide_wrapper
内的所有链接都会执行点击,我建议:
<a class="toggler" href="javascript:;">
$(".toggler").click...
这个小提琴可能会有所帮助:http://jsfiddle.net/svmK5/8/
修复我使用的布局错误:
.slide_wrapper {
float: left
}
答案 2 :(得分:0)
这在Chrome 26.0.1410
中运行良好img{ image-rendering: -webkit-optimize-contrast; }