मेरी क्वेरी है: जब भी मैं पहली बार किसी बटन को दबाता हूं, तो छवि 4 सेकंड में वांछित फ़िल्टर में सफलतापूर्वक संक्रमण हो जाती है। लेकिन जब मैं एक और बटन दबाता हूं तो संक्रमण 4 सेकंड के बिना immidiately जगह लेता है। जब भी मैं बटन दबाता हूं, मैं 4 सेकंड में तस्वीर कैसे बदलूं?सीएसएस-फ़िल्टर संक्रमण
function change_image() {
document.getElementById("blur").style.filter = "sepia(1)";
}
function change_image_2() {
document.getElementById("blur").style.filter = "grayscale(100%)";
}
function change_image_3() {
document.getElementById("blur").style.filter = "blur(5px)";
}
#blur {
transition-duration: 4s;
}
<div id="blur">
<img src="http://placehold.it/300" alt="whatever" height="400" width="300">
</div>
<br>
<button class="btn btn-success" type="button" onclick="change_image()">Sepia</button>
<button class="btn btn-success" type="button" onclick="change_image_2()">Grayscale</button>
<button class="btn btn-success" type="button" onclick="change_image_3()">Blur</button>
मैं काम नहीं कर सकता कि एनिमेटेड संक्रमण केवल एक बार क्यों काम करता है, लेकिन कम से कम मैं कह सकता हूं कि आपको अपने कार्यों को कारक बनाना चाहिए। यदि आपके पास 200 फ़िल्टर हैं, तो क्या आप एक ही फ़ंक्शन को 200 बार दोहराएंगे? नहीं, केवल एक लिखें और फिल्टर को तर्क के रूप में पास करें: 'function change_image (फ़िल्टर) { document.getElementById ("धुंधला")। Style.filter = फ़िल्टर; } 'और इसे इस तरह से कॉल करें:' onclick = "change_image ('sepia (1)')" ', 'onclick =" change_image (' ग्रेस्केल (100%) ') " –