Hi, need help with this one. I'm not really well versed with java scripts and all.
I have been working on to create a pop-up window for youtube video using javascript.
I have this code which I have been trying to work on, but here’s the problem:
When viewing the page, even when I haven’t clicked the link for the video yet, the video automatically plays.
When I clicked the link for the video, obviously, the video is already playing.
Even if I have closed the pop-up window, the video is still playing.
What I really wanted to happen is:
When I’d click the link for the video, that’s when the video should automatically start playing.
When closing the pop-up window, the video would stop playing.
Could anyone help me with this one? Here’s what I have been working on...
You are fading out the div but it is still present on the page. You could remove it entirely. Either
Code:
$(".close").click(function () {
$('.pop-up-link').next().fadeOut(500).remove();
});
// or probably
$(".close").click(function () {
$('.pop-up-link').next().fadeOut(500, function () {
$(this).remove();
});
});
If you might want to re-activate it later you might consider css('display', 'none') .. but I can't remember/haven't checked if this will stop the video(?).
Alternatively consider dynamically changing the src of the iframe to a static image, perhaps after it has faded-out (as in my above code).
__________________
"I'm here to save your life. But if I'm going to do that, I'll need total uninanonynymity." Me Myself & Irene.
Validate your HTML and CSS
Last edited by AndrewGSW; 12-07-2012 at 08:00 PM..
Reason: probably
There is, alternatively, a YouTube API to control a video in an iframe.
__________________
"I'm here to save your life. But if I'm going to do that, I'll need total uninanonynymity." Me Myself & Irene.
Validate your HTML and CSS
You are fading out the div but it is still present on the page. You could remove it entirely. Either
Code:
$(".close").click(function () {
$('.pop-up-link').next().fadeOut(500).remove();
});
// or probably
$(".close").click(function () {
$('.pop-up-link').next().fadeOut(500, function () {
$(this).remove();
});
});
If you might want to re-activate it later you might consider css('display', 'none') .. but I can't remember/haven't checked if this will stop the video(?).
Alternatively consider dynamically changing the src of the iframe to a static image, perhaps after it has faded-out (as in my above code).
Hi AndrewGSW, thanks for the code above. It did actually stop the video when closing the pop-up window. The only problem I had now is that, when I launch the page to a browser the video plays automatically even when I haven't clicked the link yet. Is there a way I could do to make it play automatically only when the link has been clicked? I really would appreciate your help. Thanks!
Is there a way I could do to make it play automatically only when the link has been clicked?
Other than using the API I mentioned, you could set the initial src to a static image (of the correct size) and swap this src when they click the link.
Maybe..
Code:
$('.pop-up-link').click(function() {
$(this).next()
.css({ "top" : height/2 - spanHeight/2 })
.css({ "left" : width/2 - spanWidth/2 })
.fadeIn(500, function () {
$('iframe').attr('src', 'http://www.youtube-nocookie.com/embed/nEmqlGwJ3L8?autoplay=1');
// you should give the iframe an id..
// then use $('#yourframeid')
});
});
HINT Give specific elements id's rather than using $(this).next() etc..
__________________
"I'm here to save your life. But if I'm going to do that, I'll need total uninanonynymity." Me Myself & Irene.
Validate your HTML and CSS
Last edited by AndrewGSW; 12-07-2012 at 10:07 PM..