BootStrap 3 sin Jquery [CODE]

Iniciado por Maurice_Lupin, 19 Abril 2015, 20:34 PM

0 Miembros y 1 Visitante están viendo este tema.

Maurice_Lupin

Hola a todos, quiero usar las plantillas CSS sin jquery.
Este es un ejemplo que encontre, lo estoy pasando a javascript.
Creo que ya resolvi la parte del navbar, si tienen sugerencias o detectan errores lo apreciaria mucho.

Código (html4strict) [Seleccionar]

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Bootstrap 3 Responsive Layout Example</title>
<link rel="stylesheet" href="http://getbootstrap.com/dist/css/bootstrap.min.css">
<script>
hasClass = function (el, cl) {
var regex = new RegExp('(?:\\s|^)' + cl + '(?:\\s|$)');
return !!el.className.match(regex);
}
function hideMenu(ob){
var menuD = document.querySelector( ob.getAttribute('data-target') );
if( hasClass(menuD, 'in') ){
menuD.classList.remove('in');
menuD.style.display = 'none';
}
}
function hideSubMenu(ob){
var menuD = ob.parentNode;
if( hasClass(menuD, 'open') ){
menuD.classList.remove('open');
}
}
function showMenu(e){    
var ob = e.target;
var menuD = document.querySelector( ob.getAttribute('data-target') );

if( hasClass(menuD, 'in') ){
menuD.classList.remove('in');
menuD.style.display = 'none';
}
else {
menuD.classList.add('in');
menuD.style.display = 'block';
}
}

function showSubMenu(e){    
var ob = e.target;
var menuD = ob.parentNode;
if( hasClass(menuD, 'open') ){
menuD.classList.remove('open');
}
else {
menuD.classList.add('open');
}
}

</script>
</head>
<body>
<nav id="myNavbar" class="navbar navbar-default navbar-inverse navbar-fixed-top" role="navigation">
    <!-- Brand and toggle get grouped for better mobile display -->
    <div class="container">
        <div class="navbar-header">
            <button type="button" class="navbar-toggle" data-toggle="collapse" data-target="#navbarCollapse">
                <span class="sr-only">Toggle navigation</span>
                <span class="icon-bar"></span>
                <span class="icon-bar"></span>
                <span class="icon-bar"></span>
            </button>
            <a class="navbar-brand" href="#">Tutorial Republic</a>
        </div>
        <!-- Collect the nav links, forms, and other content for toggling -->
        <div class="collapse navbar-collapse" id="navbarCollapse">
            <ul class="nav navbar-nav">
                <li class="active"><a href="http://www.tutorialrepublic.com" target="_blank">Home</a></li>
                <li><a href="http://www.tutorialrepublic.com/about-us.php" target="_blank">About</a></li>
                <li><a href="http://www.tutorialrepublic.com/contact-us.php" target="_blank">Contact</a></li>
<li class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button">Dropdown 1<span class="caret"></span></a>
    <ul class="dropdown-menu" role="menu">
  <li><a href="#">Components</a></li>
  <li><a href="#">javascript</a></li>
</ul>
</li>
<li class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button">Dropdown 2<span class="caret"></span></a>
    <ul class="dropdown-menu" role="menu">
  <li><a href="#">Action</a></li>
  <li><a href="#">Another action</a></li>
  <li><a href="#">Something else here</a></li>
  <li class="divider"></li>
  <li class="dropdown-header">Nav header</li>
  <li><a href="#">Separated link</a></li>
  <li><a href="#">One more separated link</a></li>
</ul>
</li>
            </ul>
        </div>
    </div>
</nav>
<div class="container">
    <div class="jumbotron">
        <h1>Learn to Create Websites</h1>
        <p>In today's world internet is the most popular way of connecting with the people. At <a href="http://www.tutorialrepublic.com" target="_blank">tutorialrepublic.com</a> you will learn the essential of web development technologies along with real life practice example, so that you can create your own website to connect with the people around the world.</p>
        <p><a href="http://www.tutorialrepublic.com" target="_blank" class="btn btn-success btn-lg">Get started today</a></p>
    </div>
    <div class="row">
        <div class="col-sm-6 col-md-4 col-lg-2">
            <h2>HTML</h2>
            <p>HTML is a markup language that is used for creating web pages. The HTML tutorial section will help you understand the basics of HTML, so that you can create your own web pages or website.</p>
            <p><a href="http://www.tutorialrepublic.com/html-tutorial/" target="_blank" class="btn btn-success">Learn More &raquo;</a></p>
        </div>
        <div class="col-sm-6 col-md-4 col-lg-2">
            <h2>CSS</h2>
            <p>CSS is used for describing the presentation of web pages. The CSS tutorial section will help you learn the essentials of CSS, so that you can fine control the style and layout of your HTML document.</p>
            <p><a href="http://www.tutorialrepublic.com/css-tutorial/" target="_blank" class="btn btn-success">Learn More &raquo;</a></p>
        </div>
        <div class="clearfix visible-sm-block"></div>
        <div class="col-sm-6 col-md-4 col-lg-2">
            <h2>Bootstrap</h2>
            <p>Bootstrap is a powerful front-end framework for faster and easier web development. The Bootstrap tutorial section will help you learn the techniques of Bootstrap so that you can create web your own website with much less efforts.</p>
            <p><a href="http://www.tutorialrepublic.com/twitter-bootstrap-tutorial/" target="_blank" class="btn btn-success">Learn More &raquo;</a></p>
        </div>
        <div class="clearfix visible-md-block"></div>
        <div class="col-sm-6 col-md-4 col-lg-2">
            <h2>References</h2>
            <p>The references section outlines all the standard HTML tags and CSS properties along with other useful references such as color names and values, symbols and character entities, web safe fonts, language codes, HTTP messages and much more.</p>
            <p><a href="http://www.tutorialrepublic.com/twitter-bootstrap-tutorial/" target="_blank" class="btn btn-success">Learn More &raquo;</a></p>
        </div>
        <div class="clearfix visible-sm-block"></div>
        <div class="col-sm-6 col-md-4 col-lg-2">
            <h2>Examples</h2>
            <p>The examples section encloses an extensive collection of examples on various topic that you can try and test yourself using online HTML editor.</p>
            <p><a href="http://www.tutorialrepublic.com/twitter-bootstrap-tutorial/" target="_blank" class="btn btn-success">Learn More &raquo;</a></p>
        </div>
        <div class="col-sm-6 col-md-4 col-lg-2">
            <h2>FAQ</h2>
            <p>The collection of Frequently Asked Questions (FAQ) provides brief answers to many common questions related to web design and development.</p>
            <p><a href="http://www.tutorialrepublic.com/twitter-bootstrap-tutorial/" target="_blank" class="btn btn-success">Learn More &raquo;</a></p>
        </div>
    </div>
    <hr>
    <div class="row">
        <div class="col-sm-12">
            <footer>
                <p>© Copyright 2013 Tutorial Republic</p>
            </footer>
        </div>
    </div>
</div>
<script>
document.addEventListener('click', function(e) {
var oMenu = document.getElementById('collapse');
oMenu = document.querySelector('button.navbar-toggle');
if(e.target == oMenu )
showMenu(e);
else if( hasClass(e.target, 'dropdown-toggle') )
showSubMenu(e);
else {
hideMenu( oMenu );
listaSub = document.getElementsByClassName('dropdown-toggle');
for (i= 0; i < listaSub.length; i++) {
hideSubMenu(listaSub[i]);
}
/*
Array.prototype.forEach.call(listaSub, function(el) {
// Do stuff with the element
hideSubMenu(el);
});*/
}
});
</script>
</body>
</html>                               


saludos.
Un error se comete al equivocarse.

Usuario Invitado

A mi parecer, estás siendo un poco redundante. Ya sabes el dicho, "No reinventes la rueda", y creo que es lo que estás haciendo. Es cuestión de dependencias; Bootrstrap depende de jQuery, además, la versión minificada ocupa realmente muy poco espacio. Preocúpate en tu propio código y hazlo con VanillaJS si así lo prefieres (como me gusta a mí :)).


Saludos.
"La vida es muy peligrosa. No por las personas que hacen el mal, si no por las que se sientan a ver lo que pasa." Albert Einstein

Maurice_Lupin

Gracias por comentar Gus Garsaky, eso precisamente es lo que intento utilizar javascript para evitar el llamado a bootstrap.min.js y jquery.min.js. Pues hay muchas funciones que no voy a utilizar. Y ya con esto funciona mis proyectos  :xD

El Bootstrap.min.css esta bien para mi.
Sólo queria ver si cometo algun error en estas lineas de javascript.

Saludos.

Un error se comete al equivocarse.

EFEX

Si por que no vas a poder darle uso a bootstrap.min.css es solo un archivo css y bootstrap.min.js son varios plugin escritos para JQuery, no es necesario utilizarlo solo pierdes algunas funciones propio del framework, si queres reescribirlo desde 0 podes ver ejemplos que seguro debe haber por hay alli.(bootstrap y vanillajs).
GITHUB