1

我创建了一个按预期工作的JSFiddle

//Jquery script
function icon_hover()
{
    $("#gcp-icon").hover( function(){
       $("#gcp-icon-hover").slideDown();
 },
 function(){
    $("#gcp-icon-hover").slideUp();
});
}

icon_hover();


   //CSS
.site_logo{
    width: 250px;
    height: 250px;
    background-color: rgba(0, 0, 0, 0.75);
}
.site_logo_hover{
    width: 250px;
    height: 250px;
    background-color:#000000;
    opacity:0.6;
    display:none;
}


#gcp-icon
{
    background: url(http://i.imgur.com/soDjoS4.png) no-repeat center center; 
    -webkit-background-size: cover;
    -moz-background-size: cover;
    -o-background-size: cover;
    background-size: cover;
}

.hover_title{
    color: white;
    width: 220px;
    margin-left: auto;
    margin-right: auto;
    padding-top: 80px;
    font-weight: 600;
    font-size: 11pt;
    font-family: verdana;
}

.hover_text{
    color: white;
    width: 245px;
    margin-left: auto;
    margin-right: auto;
    margin-top: 25px; 
    font-family: verdana;
    font-size:9pt;
}

.click_me{
    color: white;
    width: 160px;
    margin-left: auto;
    margin-right: auto;
    margin-top: 8px;
    font-weight: 600;
    font-size: 10pt;
    font-family: verdana;
}

<!--HTML-->
<div class="site_logo" id="gcp-icon">
<div class="site_logo_hover" id="gcp-icon-hover">
    <div class="hover_title" id="gcp-title">Grace Cook Photography</div>
    <div class="hover_text" id="gcp-text">Simple, subtle, clean and good looking</div>
    <div class="click_me">Click for more details</div>
</div>
</div>

然而,正如标题所暗示的,当它被复制并粘贴到一个 html 页面并在网络浏览器中打开时,看到这个,这并没有按预期工作。

我试过调试。Javascript 是有效的,并且所有依赖项(例如 Jquey.js 等)都可用。

4

6 回答 6

2

问题可能是,在 jsfiddle 中,脚本是在 dom 就绪时执行的(小提琴在 dom 就绪处理程序之外不起作用)......但在你的页面中它看起来不像那样

在 jsfiddle 中,LHS 面板中的第二个下拉列表选择了将添加脚本的位置,默认情况下它被添加为window.onload处理程序。

因此,将调用icon_hover移至 dom 就绪处理程序

jQuery(function(){
    icon_hover();
})

演示:小提琴

于 2013-09-12T03:12:56.850 回答
2

当您在网页上工作时,您应该使用始终就绪事件...

$(function(){
icon_hover();

});
于 2013-09-12T05:23:49.113 回答
1

把你的启动方法绑定 inside.document 准备好。

$(document).ready(function(){//your code here.});

还要检查任何具有相同 ID 的重复 html 元素。

于 2013-09-12T03:17:58.087 回答
1
$( document ).ready( function() {
    $("#gcp-icon").hover(
        function () {
            $( "#gcp-icon-hover" ).slideDown();
        },
        function () {
            $( "#gcp-icon-hover" ).slideUp();
        }
    )
})
于 2013-09-12T03:18:55.107 回答
1

如果您仔细检查 jsfiddle... 当您在此选项下选择 JS 库(在您的情况下为 jQuery 1.10.1)时,jsFiddle 会自动为您选择 onLoad。它的作用是将你所有的javascript代码放在一个

$(window).load(function()
{ 
    //yourcode from jsfiddle goes in here
} 

这将在窗口加载时加载您的 js 代码。

于 2013-09-12T03:23:50.850 回答
1
$(document).ready(function(){icon_hover();});
于 2013-09-12T05:31:46.987 回答