Javascript 将打开/关闭文本添加到基于它的扩展广告中';s州

Javascript 将打开/关闭文本添加到基于它的扩展广告中';s州,javascript,toggle,ads,Javascript,Toggle,Ads,我让javascript显示一个扩展广告,首先将其显示为960x30,等待3秒,将其扩展到960x300,等待3秒,然后将其收缩回960x30。完成此过程后,用户可以单击它在两种尺寸之间切换。我们通过谷歌广告管理器提供广告,所以我会检测是否有广告要显示,如果有,我会将slider类放在div上,谷歌会自动将广告包装进去 我需要的是在广告的角落里有一个文本或图形,可以在“展开”(当它处于960x30状态)和“折叠”(当它处于960x300状态)之间切换,同时仍然允许广告的其余部分作为普通广告点击。

我让javascript显示一个扩展广告,首先将其显示为960x30,等待3秒,将其扩展到960x300,等待3秒,然后将其收缩回960x30。完成此过程后,用户可以单击它在两种尺寸之间切换。我们通过谷歌广告管理器提供广告,所以我会检测是否有广告要显示,如果有,我会将slider类放在div上,谷歌会自动将广告包装进去

我需要的是在广告的角落里有一个文本或图形,可以在“展开”(当它处于960x30状态)和“折叠”(当它处于960x300状态)之间切换,同时仍然允许广告的其余部分作为普通广告点击。我希望这一切都有意义,我真的希望有人能帮我把这个带回家!!!以下是我的代码:

<head>

<!-- load jquery -->
<script type="text/javascript" src="../js/jquery1_7.js"></script>
<!-- load jquery : end -->

<!-- load google DFP -->
<script type='text/javascript' src='http://partner.googleadservices.com/gampad/google_service.js'></script>
<script type='text/javascript'>
    GS_googleAddAdSenseService("ca-pub-XXX");
    GS_googleEnableAllServices();
</script>
<script type='text/javascript'>
    GA_googleAddSlot("ca-pub-XXX", "TEST_960x300");
</script>
<script type='text/javascript'>
    GA_googleFetchAds();
</script>
<!-- load google DFP : end -->

<!-- intial load as open and click toggle -->
<script type="text/javascript">
$(window).load(function(){
$('.slider').delay(3000).animate({height:300}).delay(3000).animate({height:30}, function() {
    $(this).click(function() {
        if ($(this).height()==30) {
            $(this).animate({height:300});
        } else {
            $(this).animate({height:30});
        }
    });
});
});
</script>
<!-- intial load as open and click toggle : end -->


<!-- slider class -->
<style type='text/css'>
.slider {
    width:960px;
    height:30px;
    cursor: pointer;
    overflow: hidden;
    margin-left: 0px;
    position: relative;
}
</style>
<!-- slider class : end -->

</head>

<body>

<p>stuff above the slider</p>

<!-- TEST_960x300 -->
<script type='text/javascript'>
GA_googleFillSlot("TEST_960x300");
</script>
<!-- TEST_960x300 : end -->

<p>stuff below the slider</p>



<!-- detect if DFP has an ad in the ad slot -->
<script type='text/javascript'>

if(document.getElementById('google_ads_div_TEST_960x300_ad_container')){
    document.getElementById('google_ads_div_TEST_960x300_ad_container').setAttribute("class", "slider");
}

//For IE since it seems DFP outputs a different div for IE.
if(document.getElementById('google_ads_div_TEST_960x300')){
    document.getElementById('google_ads_div_TEST_960x300').setAttribute("class", "slider");
}

</script>
<!-- detect if DFP has an ad in the ad slot : end -->


</body>

GS_GoogleAddSenseService(“ca pub XXX”);
GS_googleEnableAllServices();
GA_Googleadslot(“ca pub XXX”,“测试960x300”);
gau_googleFetchAds();
$(窗口)。加载(函数(){
$('.slider').delay(3000).动画({height:300}).delay(3000).动画({height:30},function(){
$(此)。单击(函数(){
如果($(this).height()==30){
$(this.animate({height:300});
}否则{
$(this.animate({height:30});
}
});
});
});
.滑块{
宽度:960px;
高度:30px;
光标:指针;
溢出:隐藏;
左边距:0px;
位置:相对位置;
}
滑块上方的东西

GA_googleFillSlot(“TEST_960x300”); 滑块下面的东西

if(document.getElementById('google\u ads\u div\u TEST\u 960x300\u ad\u container')){ document.getElementById('google_ads_div_TEST_960x300_ad_container').setAttribute(“类”、“滑块”); } //对于IE,因为DFP似乎为IE输出了不同的div。 if(document.getElementById('google\u ads\u div\u TEST\u 960x300')){ document.getElementById('google_ads_div_TEST_960x300').setAttribute(“class”,“slider”); }
您可能需要稍微重新组织一下JS,以简化此任务:

function openAd() {
    // stop any current animation
    // slide the ad open
}
function closeAd() {
    // stop any current animation
    // slide the ad closed
}
如果我正确理解了你的问题,那么剩下的就很简单了:

  • 创建“展开”和“折叠”按钮,并将它们添加到DOM中。这些按钮可以是普通的
    元素或按钮,或者其他任何东西。没什么大不了的
  • 根据广告的当前状态控制每个按钮何时显示。广告收拢时,仅显示展开按钮。展开广告时,仅显示收拢的按钮
  • 将事件侦听器添加到按钮。因为您使用的是jQuery,所以这应该没有问题。类似于
    $(yourExpandButton).on('click',openAd)(请注意,它使用1.7
    on
    功能。)

如果这对你来说不够干燥,有一种稍微不同的方法。你可以只创建一个按钮,在“展开”和“折叠”之间切换它的文本(或图像,或任何东西),你可以有一个“打开/关闭”功能,根据广告的当前状态展开或折叠广告。这主要是一个品味的问题,我宁愿这样做,但我不是一个javascripter,甚至不知道从哪里开始。有点迷路了。。。