华丽的盒子和优雅的渐变



我正试图通过一个使用内联内容的灯箱将其放入一个登录表单中,但是,如果用户没有javascript,我希望这一点能得到适当的降低。根据fancybox文档,我的锚标签应该有一个要显示的内容ID的href,如下所示:

<a href="#fancybox-logon">Log On</a>
<div id="fancybox-logon" style="display:none;">My log on form!</div>

这很好,直到有人在关闭JavaScript的情况下访问。然后他们被链接到不存在的东西。在我看来,一个更好的解决方案是这样标记:

<a href="logon.php" data-lightbox="fancybox-logon">Log on!</a>
<div id="fancybox-logon" style="display:none;">My log on form!</div>

这样,如果出现故障,用户将被引导到外部登录页面。有没有一种方法可以通过fancybox或其他灯箱解决方案来实现这一点?

删除内联style="display:none;"

<a href="#fancybox-logon">Log On</a>
<div id="fancybox-logon">My content!</div>

用javascript/jQuery隐藏它:

$('#fancybox-logon').hide();

这样,如果禁用javascript,则内容仍然可见,并且锚点将正常工作。

如果您觉得js被禁用时它是多余的,并且您对此感到担忧,则可以使用javascript创建链接(请记住,这是一个利基案例,因此这更像是一种优化)。

$('#fancybox-logon').before('<a href="#fancybox-logon">Log On</a>');

如果您想在禁用js时使用指向外部登录页面的链接,只需更改href即可。示例:

<a href="logon.php" data-lightbox="fancybox-logon">Log on!</a>
<div id="fancybox-logon" style="display:none;">My content!</div>
$('[href="logon.php"]').attr('href', '#fancybox-logon');

通过这种方式,没有js的用户可以获得普通链接,而其他人则可以获得哈希链接。

相关内容

  • 没有找到相关文章

最新更新