2017-06-11 57 views
0

這裏不工作是我的jQuery:jQuery的動畫都

$(".portfolioimages").mouseover(function(){ 
    $(".title").animate({left:"170px"},250); 
    console.log("this is working"); 
}) 

這裏是我的html:

<div class="portfolioimages"> 
     <p class="slidetext title">TITLE</p> 
     <p class="slidetext description">Lorem ipsum dolor sit amet, consectetur adipiscing elit. Phasellus in convallis dolor. Ut ut eros justo. Nulla sem metus, bibendum et ultricies eget, vulputate tempor libero. Vestibulum ante ipsum primis in faucibus orci luctus et</p> 
     <img class="picture" id="commercialimage1" src="Project Images\\HarrisonHealthClinic\\Render 1-1.jpg"> 
    </div> 

我想「標題」文本向右滑動,但由於某種原因它不工作。我將console.log行放在那裏以測試mouseover事件是否正常,但它甚至沒有被調用。我在同一個js文件中有其他的功能,並且工作正常,它們都在同一個文檔就緒函數下。我無法弄清楚它爲什麼不起作用。而.porfolioimages相對

+1

你看不到錯誤控制檯關於無效的語法? – JJJ

+0

'.animate({left:「170px」},250);'而不是'.animate({left:「170px」,250});' –

+0

如果包含jQuery @JJJ – StuntHacks

回答

2

這是一個簡單的語法錯誤,對象不能有非標記項,但一個多維數組就可以了,但在這裏,這是題外話,.animate()requires an object250爲持續一個普通的參數傳遞。

假設position: relative

$(".portfolioimages").mouseover(function() { 
 
    $(".title").animate({ 
 
     left: "170px", 
 
    }, 250); 
 
    console.log("this is working"); 
 
});
.title { 
 
    position: absolute; 
 
} 
 
.portfolioimages { 
 
    position: relative; 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div class="portfolioimages"> 
 
    <p class="slidetext title">TITLE</p> 
 
    <p class="slidetext description">Lorem ipsum dolor sit amet, consectetur adipiscing elit. Phasellus in convallis dolor. Ut ut eros justo. Nulla sem metus, bibendum et ultricies eget, vulputate tempor libero. Vestibulum ante ipsum primis in faucibus orci luctus et</p> 
 
    <img class="picture" id="commercialimage1" src=""> 
 
</div>

+0

我沒有意識到封閉的支架是在錯誤的地方。但是,我修復了它,但仍然無法工作。我忘了提及.title擁有財產狀況:絕對,而.portfolioimages擁有財產狀況:相對 – Sal

+0

您必須解釋「它仍然無效」。當我編輯它的時候,我在'title'文本中得到段落文本,但是你沒有指定任何關於你如何處理其他內容的東西。問題是什麼? –

+0

所以,正如我在問題中提到的那樣,我想讓標題滑過去。我運行了你的代碼片段,它在那裏工作,但是,我複製了你的jQuery代碼並在我的js文件中測試了這些代碼,然而,沒有任何更改,該文件保持原樣,當我加載頁面時。 「標題」在我將其從事件中移出時滑過,但不在事件發生時滑過,因此似乎存在調用mouseover或mouseenter事件的問題 – Sal

0

這是因爲left -attribute只適用於與position:absolute;元素定位感謝

.title僞絕對定位。您可以使用此margin-leftpadding-left(二者可能看起來是一樣的,但實際上有不同的效果:margin移動整個元素,padding移動元素中的內容):

$(".portfolioimages").mouseover(function() { 
 
    $(".title").css("margin-left", "170px"); 
 
})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div class="portfolioimages"> 
 
    <p class="slidetext title">TITLE</p> 
 
    <p class="slidetext description">Lorem ipsum dolor sit amet, consectetur adipiscing elit. Phasellus in convallis dolor. Ut ut eros justo. Nulla sem metus, bibendum et ultricies eget, vulputate tempor libero. Vestibulum ante ipsum primis in faucibus orci luctus et</p> 
 
    <img class="picture" id="commercialimage1" src="Project Images\\HarrisonHealthClinic\\Render 1-1.jpg"> 
 
</div>

如果你使用animate -function:

$(".portfolioimages").mouseover(function() { 
 
    $(".title").animate({marginLeft: "170px"}, 250); 
 
})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div class="portfolioimages"> 
 
    <p class="slidetext title">TITLE</p> 
 
    <p class="slidetext description">Lorem ipsum dolor sit amet, consectetur adipiscing elit. Phasellus in convallis dolor. Ut ut eros justo. Nulla sem metus, bibendum et ultricies eget, vulputate tempor libero. Vestibulum ante ipsum primis in faucibus orci luctus et</p> 
 
    <img class="picture" id="commercialimage1" src="Project Images\\HarrisonHealthClinic\\Render 1-1.jpg"> 
 
</div>

+0

我更喜歡使用.animate事件。另外,.title絕對定位,而不是相對。 – Sal

+0

@Sal是的,我更喜歡'.animate'函數。但是,我的回答是針對使用'.css'函數的早期版本的問題。當時我沒有意識到這個問題是經過編輯的。這就是爲什麼我添加了第二部分。 – StuntHacks

2

一號通如果像你說的我在同一個js文件等功能和那些做工精細,所以這意味着你的jquery包括

2nd-你有一個Unexpected token ,錯誤與您的代碼

3rd-我指出的 .animate({left:"170px",250});

4th-

使用.animate({left:"170px"},250);而不是在評論,我認爲沒有必要使用mouseover使用mouseenter代替..並使用mouseleave要返回到默認位置

接下來的演示也將幫助,如果您有更多的portfolioimages div的標題

$(".portfolioimages").on('mouseenter',function(){ 
 
    $(".title").not($(this).find(".title")).stop().animate({left:"0px"} ,250); 
 
    $(this).find(".title").stop().animate({left:"170px"} ,250);             //-^-not-^- 
 
    console.log("this is working"); 
 
}).on('mouseleave',function(){ 
 
    $(".title").stop().animate({left:"0px"} ,250); 
 
})
body *{ 
 
    margin : 0; 
 
    padding : 0; 
 
} 
 
.portfolioimages{ 
 
    position: relative; 
 
} 
 
.title{ 
 
    position : absolute; 
 
    top : 0; 
 
    left : 0; 
 
    background : red; 
 
    color: #fff; 
 
    padding : 5px; 
 
    text-align : center; 
 
    width : 100px; 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div class="portfolioimages"> 
 
    <p class="slidetext title">TITLE</p> 
 
    <p class="slidetext description">Lorem ipsum dolor sit amet, consectetur adipiscing elit. Phasellus in convallis dolor. Ut ut eros justo. Nulla sem metus, bibendum et ultricies eget, vulputate tempor libero. Vestibulum ante ipsum primis in faucibus orci luctus et</p> 
 
    <img class="picture" id="commercialimage1" src="Project Images\\HarrisonHealthClinic\\Render 1-1.jpg"> 
 
</div> 
 
<div class="portfolioimages"> 
 
    <p class="slidetext title">TITLE</p> 
 
    <p class="slidetext description">Lorem ipsum dolor sit amet, consectetur adipiscing elit. Phasellus in convallis dolor. Ut ut eros justo. Nulla sem metus, bibendum et ultricies eget, vulputate tempor libero. Vestibulum ante ipsum primis in faucibus orci luctus et</p> 
 
    <img class="picture" id="commercialimage1" src="Project Images\\HarrisonHealthClinic\\Render 1-1.jpg"> 
 
</div> 
 
<div class="portfolioimages"> 
 
    <p class="slidetext title">TITLE</p> 
 
    <p class="slidetext description">Lorem ipsum dolor sit amet, consectetur adipiscing elit. Phasellus in convallis dolor. Ut ut eros justo. Nulla sem metus, bibendum et ultricies eget, vulputate tempor libero. Vestibulum ante ipsum primis in faucibus orci luctus et</p> 
 
    <img class="picture" id="commercialimage1" src="Project Images\\HarrisonHealthClinic\\Render 1-1.jpg"> 
 
</div>

+1

'mouseenter'是一個很好的建議,因爲它會減少處理程序被調用的次數。 –