基本的に、顧客がリンクをクリックしたときに表示される非表示のdiv。そのdivは、顧客が興味を持っている製品について質問するphpformailを表示します。
これが私がjqueryを使って私にとって素晴らしい働きをするオンラインで見つけたコードです:
<script type="text/javascript">
$(document).ready(function(){
$('.show_hide').showHide({
speed: 500, // speed you want the toggle to happen
easing: '', // the animation effect you want. Remove this line if you dont want an effect and if you haven't included jQuery UI
changeText: 1, // if you dont want the button text to change, set this to 0
showText: 'REQUEST A QUOTE',// the button text to show when a div is closed
hideText: 'CLOSE' // the button text to show when a div is open
});
});
</script>
Cssは単純です:
#slidingDiv, #slidingDiv_2{
height:300px;
background-color: #e2e2e2;
padding:20px;
margin-top:10px;
border-bottom:30px solid #000000;
display:none;
}
これが外部Javaスクリプトです:
(function ($) {
$.fn.showHide = function (options) {
//default vars for the plugin
var defaults = {
speed: 1000,
easing: '',
changeText: 0,
showText: 'Show',
hideText: 'Hide'
};
var options = $.extend(defaults, options);
$(this).click(function () {
$('.toggleDiv').slideUp(options.speed, options.easing);
// this var stores which button you've clicked
var toggleClick = $(this);
// this reads the rel attribute of the button to determine which div id to toggle
var toggleDiv = $(this).attr('rel');
// here we toggle show/hide the correct div at the right speed and using which easing effect
$(toggleDiv).slideToggle(options.speed, options.easing, function() {
// this only fires once the animation is completed
if(options.changeText==1){
$(toggleDiv).is(":visible") ? toggleClick.text(options.hideText) : toggleClick.text(options.showText);
}
});
return false;
});
};
})(jQuery);
このコードでは、表示されていなくてもフォームが自動的に読み込まれると私は信じています。私は間違っている可能性があります、もしそうなら私を訂正してください。
質問、div内のこのiframeが、divが非表示でなくなったときにのみ読み込まれるようにするにはどうすればよいですか?
iframe
にsrc
属性をロードするのではなく、代わりにdata-src
属性をロードします。その値として、親div
が表示されたときに使用する最終的な場所を指定します。
<div class="hidden_element">
<iframe data-src="http://msdn.Microsoft.com"></iframe>
</div>
親div
を表示するときは、iframe
属性data-src
を受け取り、その値をsrc
のiframe
属性に設定してロードするコールバックを発行します。
// Show our element, then call our callback
$(".hidden_element").show(function(){
// Find the iframes within our newly-visible element
$(this).find("iframe").prop("src", function(){
// Set their src attribute to the value of data-src
return $(this).data("src");
});
});