From d294de7e77b256eee1f44f3e7a178e8fd746e29b Mon Sep 17 00:00:00 2001 From: Juliana <juliana@le-filament.com> Date: Thu, 5 Sep 2019 16:33:35 +0200 Subject: [PATCH] Modif menu mobile --- static/src/css/pylote.css | 114 ++++++++++++++++++++++++-- static/src/css/pylote_mobil.css | 57 ++++++++++++- static/src/img/._logo-mobile-menu.png | Bin 0 -> 4096 bytes static/src/img/logo-mobile-menu.png | Bin 0 -> 2652 bytes static/src/js/script_to_top.js | 19 ++++- views/menu.xml | 58 +++++++++++-- views/page_our_differenciation.xml | 6 +- views/snippets.xml | 4 +- 8 files changed, 233 insertions(+), 25 deletions(-) create mode 100644 static/src/img/._logo-mobile-menu.png create mode 100644 static/src/img/logo-mobile-menu.png diff --git a/static/src/css/pylote.css b/static/src/css/pylote.css index c8d25c9..9fd8e41 100644 --- a/static/src/css/pylote.css +++ b/static/src/css/pylote.css @@ -181,7 +181,94 @@ li#menu-contact .btn-primary{ /*Navigation*/ - +/* Icon 1 */ + +.animated-icon3 { +width: 30px; +height: 20px; +position: relative; +margin: 0px; +-webkit-transform: rotate(0deg); +-moz-transform: rotate(0deg); +-o-transform: rotate(0deg); +transform: rotate(0deg); +-webkit-transition: .5s ease-in-out; +-moz-transition: .5s ease-in-out; +-o-transition: .5s ease-in-out; +transition: .5s ease-in-out; +cursor: pointer; +} + +.animated-icon3 span { +display: block; +position: absolute; +height: 3px; +width: 100%; +border-radius: 9px; +opacity: 1; +left: 0; +-webkit-transform: rotate(0deg); +-moz-transform: rotate(0deg); +-o-transform: rotate(0deg); +transform: rotate(0deg); +-webkit-transition: .25s ease-in-out; +-moz-transition: .25s ease-in-out; +-o-transition: .25s ease-in-out; +transition: .25s ease-in-out; +} + +.animated-icon3 span { +background: #3E3E3D; +} + +/* Icon 4 */ + +.animated-icon3 span:nth-child(1) { +top: 0px; +-webkit-transform-origin: left center; +-moz-transform-origin: left center; +-o-transform-origin: left center; +transform-origin: left center; +} + +.animated-icon3 span:nth-child(2) { +top: 10px; +-webkit-transform-origin: left center; +-moz-transform-origin: left center; +-o-transform-origin: left center; +transform-origin: left center; +} + +.animated-icon3 span:nth-child(3) { +top: 20px; +-webkit-transform-origin: left center; +-moz-transform-origin: left center; +-o-transform-origin: left center; +transform-origin: left center; +} + +.animated-icon3.open span:nth-child(1) { +-webkit-transform: rotate(45deg); +-moz-transform: rotate(45deg); +-o-transform: rotate(45deg); +transform: rotate(45deg); +top: 0px; +left: 8px; +} + +.animated-icon3.open span:nth-child(2) { +width: 0%; +opacity: 0; +} + +.animated-icon3.open span:nth-child(3) { +-webkit-transform: rotate(-45deg); +-moz-transform: rotate(-45deg); +-o-transform: rotate(-45deg); +transform: rotate(-45deg); +top: 21px; +left: 8px; +} .navbar-collapse{ height: -webkit-fill-available; background-color: #fff; @@ -191,13 +278,18 @@ li#menu-contact .btn-primary{ background-color: #fff; } -header .navbar-brand.logo .logo-mobile{ +#logo-mobile{ height: 60px; - padding: 5px 15px; + padding: 5px 20px; +} + +#logo-mobile-menu{ + height: 50px; + padding: 5px 20px; } .navbar-collapse{ - padding-top: 40px; + padding-top: 50px; } li.nav-item.active a{ @@ -208,13 +300,13 @@ li.nav-item.active a{ margin-top: 200px; } -li.nav-item.dropdown, li.nav-item.divider{ +/*li.nav-item.dropdown, li.nav-item.divider{ display: none !important; } li.nav-item.dropdown.o_extra_menu_items{ display: block !important; -} +}*/ #oe_main_menu_navbar + #wrapwrap .menu-nav-top.o_header_affix{ top: 170px; @@ -287,6 +379,7 @@ div#wrap{ .navbar-light .navbar-toggler{ border-color: rgba(0, 0, 0, 0); + padding: 1.25rem 0.75rem; } .navbar-light .navbar-toggler-icon { @@ -382,6 +475,10 @@ footer, footer .btn-primary{ font-size: 12px; } +.o_show{ + display: block; +} + #footer .btn-primary{ font-weight: 700; color: #56A099; @@ -1341,7 +1438,7 @@ h2.o_default_snippet_text:after{ */ .carousel-right-inner-border{ - border-bottom: 1px solid #56A099; + border-bottom: 0px solid #56A099; padding-bottom: 20px; } @@ -1368,7 +1465,8 @@ h2.o_default_snippet_text:after{ } .carousel-text-right-inner{ - width: 130px; + /*width: 130px;*/ + width: 200px; display: flex; flex-direction: column; justify-content: center; diff --git a/static/src/css/pylote_mobil.css b/static/src/css/pylote_mobil.css index 3337558..8863346 100644 --- a/static/src/css/pylote_mobil.css +++ b/static/src/css/pylote_mobil.css @@ -14,7 +14,6 @@ font-size: 26px; } - .home-header-title { padding: 0px ; } @@ -270,7 +269,7 @@ letter-spacing: 3px; } - .carousel-text-right-inner{ + /*.carousel-text-right-inner{ width: 400px; } @@ -318,7 +317,7 @@ .link-publi { border-top: none ; border-left: 1px solid #56A099; - } + }*/ .mentions{ margin-top: 0; @@ -359,6 +358,58 @@ #cleaner h2{ text-align: left; } + .carousel-text-right-inner{ + width: 400px; + } + + .carousel-right-inner-border{ + border-bottom: 1px solid #56A099; + } + + .s_carousel .carousel-control-prev-icon, .s_carousel .carousel-control-next-icon, .s_quotes_carousel .carousel-control-prev-icon, .s_quotes_carousel .carousel-control-next-icon{ + margin-top: 0px; + } + + .carousel-right-partner{ + text-align: left; + } + + .carousel-right-inner .circle-home-border{ + width: 90px; + height: 90px; + } + + .carousel-text-right-inner p{ + font-size: 16px; + } + + .carousel-control-prev, .carousel-control-next{ + align-items: center; + top: 0; + margin: 0; + } + + + .circle-home-border p.o_default_snippet_text{ + font-size: 15px; + } + + + .link-bottom a{ + margin: 0; + display: initial; + margin-right: 10px; + } + + .link-bottom h5{ + margin-right: 10px; + display: inline-block; + } + + .link-publi { + border-top: none ; + border-left: 1px solid #56A099; + } } @media (min-width: 1200px) { .on-environment-banner .d-flex{ diff --git a/static/src/img/._logo-mobile-menu.png b/static/src/img/._logo-mobile-menu.png new file mode 100644 index 0000000000000000000000000000000000000000..b11e7f0762f4bc4c5a542de3b000d12f30ad03d9 GIT binary patch literal 4096 zcmZQz6=P>$Vqox1Ojhs@R)|o50+1L3Cj$e65d#C?1_lNYpYIU^1EU-RLEsn?62!pe z_m_bIq=R7v0|SE=nkGgD2AH@?a(=E}VnIPps$OntNn%Q3NupJJwy%q4NosCracWUW zVtO$HLsCIbW^svu!2%A5NsJ&9Kuj17VuLWq%^-RdkA}c#2#kinXb6mkz-S1JhQMeD zjE2By2#kinXb6nB5CC-%K^W|DxsZ&^VuhmA;{4L0<Wz;U{Gx1y%)FA+ypqiPyu_TG mN`;)%v=W7+oW#6r1qB7Lo*_<v{0_okZy@^bG7NJ6{{sMh^Dhnn literal 0 HcmV?d00001 diff --git a/static/src/img/logo-mobile-menu.png b/static/src/img/logo-mobile-menu.png new file mode 100644 index 0000000000000000000000000000000000000000..6c4fbbf89b9b37408c7b73c8edeb62c0c21e2ac8 GIT binary patch literal 2652 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 literal 0 HcmV?d00001 diff --git a/static/src/js/script_to_top.js b/static/src/js/script_to_top.js index 7ea50ca..3b665b6 100644 --- a/static/src/js/script_to_top.js +++ b/static/src/js/script_to_top.js @@ -3,9 +3,24 @@ odoo.define('pylote_website.scroll_totop', function (require) { $(document).ready(function () { - $( '#navbar-toggler' ).on( 'click', function () { - $("#logo-mobile").attr('style','display: none'); + $( '#button-open-menu' ).on( 'click', function () { + if($("#logo-mobile").hasClass("o_show")) { + $("#logo-mobile").removeClass('o_show'); + $("#logo-mobile-menu").removeClass('o_hidden'); + $("#logo-mobile").addClass('o_hidden'); + $("#logo-mobile-menu").addClass('o_show'); + } else { + $("#logo-mobile").removeClass('o_hidden'); + $("#logo-mobile-menu").removeClass('o_show'); + $("#logo-mobile").addClass('o_show'); + $("#logo-mobile-menu").addClass('o_hidden'); + } + // $("#logo-mobile").attr('style','display: none'); + // $("#logo-mobile-menu").attr('style','display: block'); + // $("#button-open-menu").attr('style','display: none'); + $('.animated-icon3').toggleClass('open'); }); + $( '#myNavbar a' ).on( 'click', function () { $( '#myNavbar' ).find( 'li.active' ).removeClass( 'active' ); diff --git a/views/menu.xml b/views/menu.xml index 71f6e76..b15eee3 100644 --- a/views/menu.xml +++ b/views/menu.xml @@ -1,11 +1,54 @@ <?xml version="1.0" encoding="utf-8"?> <odoo> + + <template id="custom_navbar" name="Custom nav-bar" customize_show="True" inherit_id="website.layout"> - - <!-- <xpath expr="//div[@class='collapse navbar-collapse']" position="before"> - <t t-call="website.language_selector"/> - </xpath> --> + <xpath expr="//header" position="replace"> + <header id="menu_odoo" class="o_header_affix affix affixed"> + <nav class="navbar navbar-expand-md navbar-light bg-light"> + <div class="container"> + <a href="/" class="d-block d-sm-none-pylote navbar-brand logo"> + <img id="logo-mobile" class="logo-mobile o_show" src="/pylote_website/static/src/img/logo-pylote-sans-text.png" t-att-alt="'Logo of %s' % res_company.name" t-att-title="res_company.name"/> + <img id="logo-mobile-menu" class="o_hidden" src="/pylote_website/static/src/img/logo-mobile-menu.png" t-att-alt="'Logo of %s' % res_company.name" t-att-title="res_company.name"/> + <!-- <img id="logo-mobile-menu" class="logo-mobile d-block d-sm-none-pylote" src="/pylote_website/static/src/img/logo-mobile-menu.png" t-att-alt="'Logo of %s' % res_company.name" t-att-title="res_company.name"/> --> + </a> + <a href="/" class="d-none d-sm-block-pylote navbar-brand logo"> + <!-- <img id="logo-mobile" class="logo-mobile d-block d-sm-none-pylote" src="/pylote_website/static/src/img/logo-pylote-sans-text.png" t-att-alt="'Logo of %s' % res_company.name" t-att-title="res_company.name"/> --> + + <img t-att-src="'/logo.png?company=%s' % res_company.id" t-att-alt="'Logo of %s' % res_company.name" t-att-title="res_company.name"/> + </a> + + <button id="button-open-menu" type="button" class="navbar-toggler third-button" data-toggle="collapse" data-target="#top_menu_collapse"> + <div class="animated-icon3"><span></span><span></span><span></span></div> + </button> + + <div class="collapse navbar-collapse" id="top_menu_collapse"> + + <ul class="nav navbar-nav ml-auto text-right" id="top_menu"> + <t t-foreach="website.menu_id.child_id" t-as="submenu"> + <t t-call="website.submenu"> + <t t-set="item_class" t-value="'nav-item'"/> + <t t-set="link_class" t-value="'nav-link'"/> + </t> + </t> + <!-- <li class="nav-item" id="menu-news"> + <a role="menuitem" href="/blog/news" t-att-class="'active nav-link' if request.httprequest.path == '/blog/our-blog-1' else 'nav-link' "> + <span data-oe-model="website.menu" data-oe-field="name" data-oe-type="char" data-oe-expression="submenu.name">News</span> + </a> + </li> --> + <!-- <li class="nav-item" id="menu-contact"> + <a role="menuitem" href="/contact" t-att-class="'active nav-link btn-primary' if request.httprequest.path == '/contact' else 'nav-link btn-primary'" > + <span data-oe-model="website.menu" data-oe-field="name" data-oe-type="char" data-oe-expression="submenu.name">Contact us</span> + </a> + </li> --> + </ul> + </div> + </div> + </nav> + </header> + </xpath> + <xpath expr="//ul[@id='top_menu']" position="inside"> <li class="nav-item" id="menu-news"> <a role="menuitem" href="/blog/news" t-att-class="'active nav-link' if request.httprequest.path == '/blog/our-blog-1' else 'nav-link' "> @@ -19,17 +62,18 @@ </li> </xpath> + <!-- <xpath expr="//header" position="attributes"> <attribute name="t-attf-class" add="#{'o_header_affix affix affixed'}" separator=" "/> - </xpath> + </xpath> --> - <xpath expr="//a[@class='navbar-brand logo']" position="replace"> + <!-- <xpath expr="//a[@class='navbar-brand logo']" position="replace"> <a href="/" class="navbar-brand logo"> <img id="logo-mobile" class="logo-mobile d-block d-sm-none-pylote" src="/pylote_website/static/src/img/logo-pylote-sans-text.png" t-att-alt="'Logo of %s' % res_company.name" t-att-title="res_company.name"/> <img class="d-none d-sm-block-pylote" t-att-src="'/logo.png?company=%s' % res_company.id" t-att-alt="'Logo of %s' % res_company.name" t-att-title="res_company.name"/> </a> - </xpath> + </xpath> --> </template> diff --git a/views/page_our_differenciation.xml b/views/page_our_differenciation.xml index 5c30ac9..d9085c1 100644 --- a/views/page_our_differenciation.xml +++ b/views/page_our_differenciation.xml @@ -36,7 +36,7 @@ </div> </div> </div> - <div id="our-mission" class="bloc-part"> + <div id="our-mission" class="bloc-part pb-md-5 pb-sm-0"> <div class="container"> <div class=" pt-5 pb-5"> <h2>Our mission, vision, values</h2> @@ -106,7 +106,7 @@ <div class="container"> <div class="pt-5 pb-5"> <h2>Our innovative technology</h2> - <div class="row text-left "> + <div class="row text-left pb-md-5 pb-sm-0"> <div class="d-none d-sm-block-pylote col-md-6"> <p><span>A world-first patented natural protection solution to avoid bacterial and viral contamination, based on a unique clean technology, patented & proprietary</span></p> </div> @@ -127,7 +127,7 @@ <div class="col-md-8"> <img src="/pylote_website/static/src/img/img-techno.png" class="img img-responsive" /> <img src="/pylote_website/static/src/img/img-techno2.png" class="d-none d-sm-block-pylote pt-5 pb-5 img img-responsive" /> - <img src="/pylote_website/static/src/img/img-techno2-mobil.png" class="d-block d-sm-none-pylote pt-5 pb-5 img img-responsive" /> + <img src="/pylote_website/static/src/img/img-techno2-mobil.png" class="d-block d-sm-none-pylote pt-5 img img-responsive" /> </div> <div class="col"></div> </div> diff --git a/views/snippets.xml b/views/snippets.xml index 410f9db..5be9eb8 100644 --- a/views/snippets.xml +++ b/views/snippets.xml @@ -68,9 +68,9 @@ </div> <div class="container pt-5 pb-5"> <div class="row"> - <div class="col-md-5"> + <div class="col-lg-5"> </div> - <div class="col-md-7 link-bottom"> + <div class="col-lg-7 link-bottom"> <p>You want to know more ?</p> <a href="#" class="btn-primary">Our technology</a> <a href="/contact" class="btn-primary">Contact us</a> -- GitLab