I need help to change image with mouseover function - javascript

Hello I need help to change image with mouseover function
I only get one image and I need multiple images, I attach my code.
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=f, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>JS practice Image Mouse Over</title>
</head>
<body>
<!-- -->
<div id="div"></div>
<img src="img/01.SanitariosC.png" alt="Sanitarios" id="sanitarios">
<img src="img/02.GriferiasC.png" alt="Griferias" id="griferias">
<script src="js/index.js"></script>
</body>
</html>
/* SANITARIOS*/
let image = document.getElementById('sanitarios');
function changeToLike() {
image.src="img/01.SanitariosE.png";
}
function changeToDislike() {
image.src="img/01.SanitariosC.png";
}
image.addEventListener('mouseover', changeToLike); image.addEventListener('mouseout', changeToDislike);
/* GRIFERIAS*/
let image1 = document1.getElementById1('griferias');
function changeToLike1() {
image1.src="img/02.GriferiasE.png";
}
function changeToDislike1() {
image1.src="img/02.GriferiasC.png";
}
image1.addEventListener1('mouseover', changeToLike1); image1.addEventListener1('mouseout', changeToDislike1);

Try this code
var image = document.getElementById("imageId");
image.addEventListener('mouseover', function(){
image.src = "https://planetcoms.com/wp-content/uploads/2017/01/happy-smiley.png"
})
<!DOCTYPE html>
<html>
<head>
<title>mouse hover & change picture in JavaScript</title>
</head>
<body>
<img src="https://i.pinimg.com/originals/15/a5/e0/15a5e0513b6c4811b928b96d96d5ce29.png" width="175px" id="imageId">
</body>
</html>

What you can do to change the image's src is add listener to image or image div
<html>
<head>
<title>mouse hover & change picture in JavaScript</title>
</head>
<body>
<img src="oldImg.png" class="oldImg">
</body>
</html>
Add the listener to image
let image = document.querySelector("oldImg");
image.addEventListener('mouseover', ()=>{
image.src = "newImg.png"
})

Related

Adding paragraph to div in js

why doesn't it work? i just want to add a paragraph to a div. Guys, why doesn't it work? i just want to add a paragraph to a div.
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<script src="pobieranko.js"></script>
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<div class="klasa">lalal</div>
</body>
</html>
const divek = document.querySelector(".klasa")
const paragraf = document.createElement("p")
paragraf.textContent = "paragrafik"
divek.appendChild (paragraf);
It appears you did not add a script tag to the page as so:
<script>
const divek = document.querySelector(".klasa")
const paragraf = document.createElement("p")
paragraf.textContent = "paragrafik"
divek.appendChild (paragraf);
</script>

Play sound on click ( Anywhere)

Im trying to create a function that when you click down anywhere on the page a sound is played. I can only find information on how to do this for buttons.
If you can help me that would be amazing
html css and js
Thank you
This script binds an click event to any element in the body, upon click will play the sound stated in the audio tag.
<!doctype html>
<html>
<head>
<title>Play audio</title>
</head>
<body onload="addEvent()">
<script>
function addEvent(){
document.body.addEventListener("click", play)
}
function play() {
var audio = document.getElementById("audio");
audio.play();
}
</script>
<h1>click any element on the body to play sound </h1>
<audio id="audio" src="https://interactive-examples.mdn.mozilla.net/media/cc0-audio/t-rex-roar.mp3"></audio>
</body>
</html>
you should just handle onclick event.
<html lang="en">
<head>
<meta charset="UTF-8">
</head>
<body>
</body>
<script>
var should_play=true
window.onclick = () => {
if (should_play){
should_play=!should_play
let soundSource = "https://www.soundhelix.com/examples/mp3/SoundHelix-Song-1.mp3";
let sound = new Audio(soundSource);
sound.play();
sound.onended = () => {
should_play=true
}
}
}
</script>
</html>
variable should_play has been defined for not to playing song again when it is playing.
Why dont just use onClick event on the body
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body onclick="playAudio()" style="height: 1000px;">
<p>CLICK</p>
<audio id="audio" src="https://www.soundhelix.com/examples/mp3/SoundHelix-Song-1.mp3"></audio>
<script>
function playAudio() {
var audio = document.getElementById("audio");
audio.play();
}
</script>
</body>
</html>

JavaScript isn’t working when linking .js file to .html file

I've been learning HTML, CSS & javascript these last few weeks. All the previous coding experience I've had is with C++ from my CS courses so I'm new to front end development.
I wrote some javascript in the HTML index page and the functions work properly. However, when I add it into an external .js file, the program stops working.
Here's the index.html file:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="stylesheet" href="/style.css"/>
<title> Progress Bar </title>
</head>
<body>
<audio id="music" src="trax/coldWorld.wav" controls></audio>
<div class="progress_bar" id="progress_bar">
<div class="progressed" id="progressed"></div>
</div>
</body>
<script src="/audio.js"></script>
</html>
The .js file:
var music = document.getElementById('music');
var progressed = document.getElementById('progressed');
var progress_bar = document.getElementById('progress_bar');
music.ontimeupdate = function(e) {
progressed.style.width = Math.floor(music.currentTime *100 / music.duration) + "%";
}
progress_bar.onclick = function(e) {
music.currentTime = ((e.offsetX / progress_bar.offsetWidth) * music.duration);
}
You can try moving the script tag inside the body tag and correcting the relative path
<!DOCTYPE html>
<html lang="en">
<head>
...
</head>
<body>
...
<script src="./audio.js"></script>
</body>
</html>

Randomise youtube link to play in an embedded video

$("#video").attr('src', idea(ads));
$(".heading").text(idea(ads));
var ads = ["https://youtu.be/nSZtxXNjmLA", "https://www.youtube.com/watch?v=D2pOkm4opVU"];
function idea(el) {
return el[Math.floor(Math.random() * el.length)];
}
So I am using the function idea to randomise it. The iframe has an id of video.
1 - Move var ads to the first line
2 - Link jquery in yout html https://learn.jquery.com/about-jquery/how-jquery-works/
<script src="https://code.jquery.com/jquery-git.js"></script>
var ads = [
"youtu.be/nSZtxXNjmLA",
"youtube.com/watch?v=D2pOkm4opVU",
"youtu.be/WElPhX5Pb6I",
"youtu.be/78mNZeDaMtk"
];
$("#video").attr('src', idea(ads));
$(".heading").text(idea(ads));
function idea(el) {
return el[Math.floor(Math.random() * el.length)];
}
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width">
<title>Demo</title>
</head>
<body>
<h1 class="heading"></h1>
<video src=""></video>
<script src="https://code.jquery.com/jquery-git.js"></script>
</body>
</html>

How to print another file than the current one?

I thought this simple setup would work and use the alternate link to print test.pdf. But in the print preview I see the current page and not test.pdf???
<html>
<head>
<title>TODO supply a title</title>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="alternate" media="print" href="http://localhost/mydomain.com/test/test.pdf">
<script>
window.print();
</script>
</head>
<body>
<div>TODO write content</div>
</body>
</html>
[edit]
the closest I got only seems to work in Chrome (I like to skip the print preview and auto print, but the --kiosk doesn't seem to play along with following code):
<html>
<head>
<title>TODO supply a title</title>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<script src="js/jquery-2.2.0.min.js" type="text/javascript"></script>
<script>
jQuery(document).ready(function ($) {
function print(url)
{
var _this = this,
iframeId = 'iframeprint',
$iframe = $('iframe#iframeprint');
$iframe.attr('src', url);
$iframe.load(function () {
callPrint(iframeId);
});
}
//initiates print once content has been loaded into iframe
function callPrint(iframeId) {
var PDF = document.getElementById(iframeId);
PDF.focus();
PDF.contentWindow.print();
}
print('http://localhost/mydomain.com/tests/test.pdf');
});
</script>
</head>
<body onload="">
<div>TODO write content</div>
<iframe id="iframeprint" src=""></iframe>
</body>
</html>
You can't do this to a pdf file. But you can do this to an html file.
Something like this:
function print() {
var w = window.open('', 'width=400, height=400');
w.document.body.innerHTML = "HTML";
w.print();
}
<button onclick="print()">Print another file</button>
You can see it here: http://output.jsbin.com/kefoxo
The full code: (Tested on Google Chrome)
http://jsbin.com/kefoxo/edit?html,js

Categories

Resources