我有以下代码
html
<a href="#" class="button">button</a>
<div class="holder">
<img src="http://placehold.it/350x150" />
<div class="content">
<h3>hello there</h3>
<a href="#">view more</a>
<div/>
</div>
CSS
.holder {
margin-top: 130px;
position: relative;
}
img {
position: relative;
display: block;
transition: -webkit-transform 0.5s;
transition: -moz-transform 0.5s;
z-index: 10;
}
.content {
background: blue;
height: 100%;
color: white;
z-index: 1;
position: absolute;
top: auto;
bottom: 0;
}
a {
color: white;
background: red;
padding: 10px;
}
.holder:hover img {
-webkit-transform: translateX(90px);
-moz-transform: translateX(90px);
}
.button {
background: green;
position: absolute;
top: 10px;
}
JQuery
if (Modernizr.touch) {
alert("touch support");
}
else {
alert("no touch support");
$('.button').toggle(
function(){
$('img').css({
'-webkit-transform' : 'translateX(90px)',
'-moz-transform' : 'translateX(90px)'
});
},
function(){
$('img').css({
'-webkit-transform' : 'translateX(-90px)',
'-moz-transform' : 'translateX(-90px)'
});
});
}
我正在使用 modernizer 来检测触摸设备。在此代码中,当用户将鼠标悬停在图像上时,它会显示 .content
类,我正在尝试使用 jquery 为触摸设备复制它,因为悬停在触摸设备上效果不佳。(为了检查jquery 代码我已经编写了用于非触摸设备的代码)
我的问题是 1) 这段代码是否正确,以及 2) 编写了 jquery 代码以通过单击更改图像的位置。相反,按钮消失了。
这就是我用纯 CSS 所做的 --> jsfiddle-css
这就是我试图用 jquery 复制的东西,但它不起作用 --> jsfiddle with jquery
这可能是一种方式:
if (Modernizr.touch) {
alert("touch support");
} else {
alert("no touch ");
var cssChanged = false; // remember wether the css has been changed
// Note: I use true/false, but you could also use a counter, so you can make each Nth click do something
$('.button').click(function(){
if(cssChanged===false)
$('img').css({
'-webkit-transform' : 'translateX(90px)',
'-moz-transform' : 'translateX(90px)'
});
cssChanged = true; // remember css has been changed
}
else{
$('img').css({
'-webkit-transform' : "",
'-moz-transform' :""
});
cssChanged = false; // set var back to unchanged
}
});
}
我是一名优秀的程序员,十分优秀!